package be.kdg.bombermanunlimited.client.Interfaces;

import java.util.List;
import java.util.Vector;

import be.kdg.bombermanunlimited.server.remote.interfaces.ITile;

public interface IGameToGui {
	/**
	 * locale speler wordt toegevoegd aan de gui
	 * gui zal deze lokaal kopieren+ deze instantie bijhouden voor oproepen. 
	 * @param localPlayer
	 */
	void addLocalPlayer(IProxyGuiPlayer localPlayer); 

	/**
	 * lijst met spelers wordt toegevoegd aan de gui
	 * @param players
	 */
	void addOtherPlayers(List<IProxyGuiPlayer> players); 
	
	/**
	 * alle spelers worden locaal geupdate aan de hand van de IProxyGui players
	 */
	void updatePlayers(); 
	
	/**
	 * een nieuwe bom wordt gelegd en moet achteraan (!) aan de lijst worden toegevoegd
	 * @param row
	 * @param column
	 * @param range
	 */
	void addBomb(int row, int column, int range); 

	/**
	 * eerste (!) bom in de rij wordt opgeblazen
	 */
	void blowBomb(); 

	/**
	 * vector met tiles wordt doorgegeven, gui maakt hiermee een lokale map aan.
	 * @param tiles
	 */
	void setMap(Vector<ITile> tiles); 

	/**
	 * tile op index 'index' moet gras worden.
	 * @param index
	 */
	void changeTile(int index); 
	
	/**
	 * een andere speler is dood
	 * @param index
	 */
	void setDead(int index); 

	/**
	 * lokale speler is gedood. 
	 */
	void gameOver(); 

	/**
	 * een nieuwe speler wordt toegevoegd aan het spel
	 * @param player
	 */
	void addOtherPlayer(IProxyGuiPlayer player); 

	void startGame();
}
